Apparatus and methods for providing keypress commands and directional commands to a mobile computing device

ABSTRACT

Various embodiments for providing directional commands for a mobile computing device are described. In one or more embodiments, a mobile computing device may comprise a keypad arranged to operate in multiple modes including a standard mode and a directional mode such as a gaming mode, for example. The standard mode may support all of the preset and programmable commands and functions typically provided for normal operation of the mobile computing device. The directional mode may associate certain directional commands with multiple keys and/or buttons of the keypad so that most keystrokes and keystroke combinations input by a user will be interpreted as a particular directional command. The directional mode may be used when running applications which respond primarily to directional commands such as gaming applications. Other embodiments are described and claimed.

BACKGROUND

A mobile computing device such as a combination handheld computer andmobile telephone or smart phone generally may provide voice and datacommunications functionality, as well as computing and processingcapabilities. In addition, a mobile computing device may support varioustypes of applications such as gaming applications which receivedirectional commands as input. Accordingly, there may be a need for animproved apparatus and methods for providing directional commands for amobile computing device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a mobile computing device in accordance with one ormore embodiments.

FIG. 2 illustrates a keypad for a mobile computing device in accordancewith one or more embodiments.

FIG. 3 illustrates a logic flow in accordance with one or moreembodiments.

DETAILED DESCRIPTION

Various embodiments are directed to providing directional commands for amobile computing device. In one or more embodiments, a mobile computingdevice may comprise a keypad arranged to operate in multiple modesincluding a standard mode and a directional mode such as a gaming mode,for example. The standard mode may support all of the preset andprogrammable commands and functions typically provided for normaloperation of the mobile computing device. The directional mode mayassociate certain directional commands (e.g., left and right commands)with multiple keys and/or buttons of the keypad so that most keystrokesand keystroke combinations input by a user will be interpreted as aparticular directional command (e.g., left command or right command).The directional mode may be used when running applications which respondprimarily to directional commands such as gaming applications.

In the directional mode, the keypad may comprise or implement multiplekeypad regions each associated with a different directional command.Each keypad region may comprise several keys of the keypad and may beassociated with a particular directional command. Accordingly, a usermay press any key within a particular keypad region to generate theidentical directional command.

FIG. 1 illustrates a mobile computing device 100 in accordance with oneor more embodiments. The mobile computing device 100 may be implementedas a combination handheld computer and mobile telephone, sometimesreferred to as a smart phone. Examples of smart phones include, forexample, Palm® products such as Palm® Treo™ smart phones. Although someembodiments may be described with the mobile computing device 100implemented as a smart phone by way of example, it may be appreciatedthat the embodiments are not limited in this context. For example, themobile computing device 100 may comprise, or be implemented as, any typeof wireless device, mobile station, or portable computing device with aself-contained power source (e.g., battery) such as a laptop computer,ultra-laptop computer, personal digital assistant (PDA), cellulartelephone, combination cellular telephone/PDA, mobile unit, subscriberstation, user terminal, portable computer, handheld computer, palmtopcomputer, wearable computer, media player, pager, messaging device, datacommunication device, and so forth.

The mobile computing device 100 may provide voice communicationsfunctionality in accordance with different types of cellularradiotelephone systems. Examples of cellular radiotelephone systems mayinclude Code Division Multiple Access (CDMA) systems, Global System forMobile Communications (GSM) systems, North American Digital Cellular(NADC) systems, Time Division Multiple Access (TDMA) systems,Extended-TDMA (E-TDMA) systems, Narrowband Advanced Mobile Phone Service(NAMPS) systems, third generation (3G) systems such as Wide-band CDMA(WCDMA), CDMA-2000, Universal Mobile Telephone System (UMTS) systems,and so forth.

In addition to voice communications functionality, the mobile computingdevice 100 may be arranged to provide data communications functionalityin accordance with different types of cellular radiotelephone systems.Examples of cellular radiotelephone systems offering data communicationsservices may include GSM with General Packet Radio Service (GPRS)systems (GSM/GPRS), CDMA/1xRTT systems, Enhanced Data Rates for GlobalEvolution (EDGE) systems, Evolution Data Only or Evolution DataOptimized (EV-DO) systems, Evolution For Data and Voice (EV-DV) systems,High Speed Downlink Packet Access (HSDPA) systems, High Speed UplinkPacket Access (HSUPA), and so forth.

The mobile computing device 100 may be arranged to provide voice and/ordata communications functionality in accordance with different types ofwireless network systems. Examples of wireless network systems mayinclude a wireless local area network (WLAN) system, wirelessmetropolitan area network (WMAN) system, wireless wide area network(WWAN) system, and so forth. Examples of suitable wireless networksystems offering data communication services may include the Instituteof Electrical and Electronics Engineers (IEEE) 802.xx series ofprotocols, such as the IEEE 802.11a/b/g/n series of standard protocolsand variants (also referred to as “WiFi”), the IEEE 802.16 series ofstandard protocols and variants (also referred to as “WiMAX”), the IEEE802.20 series of standard protocols and variants, and so forth.

The mobile computing device 100 may be arranged to perform datacommunications in accordance with different types of shorter rangewireless systems, such as a wireless personal area network (PAN) system.One example of a suitable wireless PAN system offering datacommunication services may include a Bluetooth system operating inaccordance with the Bluetooth Special Interest Group (SIG) series ofprotocols, including Bluetooth Specification versions v1.0, v1.1, v1.2,v2.0, v2.0 with Enhanced Data Rate (EDR), as well as one or moreBluetooth Profiles, and so forth. Other examples may include systemsusing infrared techniques or near-field communication techniques andprotocols, such as electro-magnetic induction (EMI) techniques. Anexample of EMI techniques may include passive or active radio-frequencyidentification (RFID) protocols and devices.

As shown in the embodiment of FIG. 1, the mobile computing device 100may comprise a dual processor architecture including a host processor102 and a radio processor 104. In various implementations, the hostprocessor 102 and the radio processor 104 may be arranged to communicatewith each other using interfaces 106 such as one or more universalserial bus (USB) interfaces, micro-USB interfaces, universalasynchronous receiver-transmitter (UART) interfaces, general purposeinput/output (GPIO) interfaces, control/status lines, control/datalines, audio lines, and so forth.

The host processor 102 may be responsible for executing various softwareprograms such as system programs and applications programs to providecomputing and processing operations for the mobile computing device 100.The radio processor 104 may be responsible for performing various voiceand data communications operations for the mobile computing device 100such as transmitting and receiving voice and data information over oneor more wireless communications channels. Although some embodiments maybe described as comprising a dual processor architecture for purposes ofillustration, it is worthy to note that the mobile computing device 100may comprise any suitable processor architecture and/or any suitablenumber of processors consistent with the described embodiments.

The host processor 102 may be implemented as a host central processingunit (CPU) using any suitable processor or logic device, such as a as ageneral purpose processor. Although some embodiments may be describedwith the host processor 102 implemented as a CPU or general purposeprocessor by way of example, it may be appreciated that the embodimentsare not limited in this context. For example, the host processor 102 maycomprise, or be implemented as, a chip multiprocessor (CMP), dedicatedprocessor, embedded processor, media processor, input/output (I/O)processor, co-processor, microprocessor, controller, microcontroller,application specific integrated circuit (ASIC), field programmable gatearray (FPGA), programmable logic device (PLD), or other processingdevice in accordance with the described embodiments.

As shown, the host processor 102 may be coupled through a memory bus 108to a memory 110. The memory bus 108 may comprise any suitable interfaceand/or bus architecture for allowing the host processor 102 to accessthe memory 110. Although the memory 110 may be shown as being separatefrom the host processor 102 for purposes of illustration, it is worthyto note that in various embodiments some portion or the entire memory110 may be included on the same integrated circuit as the host processor102. Alternatively, some portion or the entire memory 110 may bedisposed on an integrated circuit or other medium (e.g., hard diskdrive) external to the integrated circuit of host processor 102. Invarious embodiments, the mobile computing device 100 may comprise anexpansion slot to support a multimedia and/or memory card, for example.

The memory 110 may be implemented using any machine-readable orcomputer-readable media capable of storing data such as volatile memoryor non-volatile memory, removable or non-removable memory, erasable ornon-erasable memory, writeable or re-writeable memory, and so forth.Examples of machine-readable storage media may include, withoutlimitation, random-access memory (RAM), dynamic RAM (DRAM),Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM(SRAM), read-only memory (ROM), programmable ROM (PROM), erasableprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), flash memory (e.g., NOR or NAND flash memory), contentaddressable memory (CAM), polymer memory (e.g., ferroelectric polymermemory), phase-change memory, ovonic memory, ferroelectric memory,silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or opticalcards, or any other type of media suitable for storing information.

The mobile computing device 100 may comprise a display 112 coupled tothe host processor 102. The display 112 may comprise any suitable visualinterface for displaying content to a user of the mobile computingdevice 100. In one embodiment, for example, the display 112 may beimplemented by a liquid crystal display (LCD) such as a touch-sensitivecolor (e.g., 16-bit color) thin-film transistor (TFT) LCD screen. Insome embodiments, the touch-sensitive LCD may be used with a stylusand/or a handwriting recognizer program.

The mobile computing device 100 may comprise an alphanumeric keypad 114coupled to the host processor 102. The keypad 114 may comprise, forexample, a QWERTY key layout and an integrated number dial pad. Themobile computing device 100 also may comprise various keys, buttons, andswitches such as, for example, input keys, preset and programmable hotkeys, left and right action buttons, a navigation button such as amultidirectional navigation button, phone/send and power/end buttons,preset and programmable shortcut buttons, a volume rocker switch, aringer on/off switch having a vibrate mode, and so forth.

The mobile computing device 100 may comprise an input/output (I/O)interface 116 coupled to the host processor 102. The I/O interface 116may comprise one or more I/O devices such as a serial connection port,an infrared port, integrated Bluetooth® wireless capability, and/orintegrated 802.11x (WiFi) wireless capability, to enable wired (e.g.,USB cable) and/or wireless connection to a local computer system, suchas a local personal computer (PC). In various implementations, mobilecomputing device 100 may be arranged to transfer and/or synchronizeinformation with the local computer system.

The host processor 102 may be coupled to various audio/video (A/V)devices 118 that support A/V capability of the mobile computing device100. Examples of A/V devices 118 may include, for example, a microphone,one or more speakers, an audio port to connect an audio headset, anaudio coder/decoder (codec), an audio player, a digital camera, a videocamera, a video codec, a video player, and so forth.

The host processor 102 may be coupled to a power supply 120 arranged tosupply and manage power to the elements of the mobile computing device100. In various embodiments, the power supply 120 may be implemented bya rechargeable battery, such as a removable and rechargeable lithium ionbattery to provide direct current (DC) power, and/or an alternatingcurrent (AC) adapter to draw power from a standard AC main power supply.

As mentioned above, the radio processor 104 may perform voice and/ordata communication operations for the mobile computing device 100. Forexample, the radio processor 104 may be arranged to communicate voiceinformation and/or data information over one or more assigned frequencybands of a wireless communication channel. In various embodiments, theradio processor 104 may be implemented as a communications processorusing any suitable processor or logic device, such as a modem processoror baseband processor. Although some embodiments may be described withthe radio processor 104 implemented as a modem processor or basebandprocessor by way of example, it may be appreciated that the embodimentsare not limited in this context. For example, the radio processor 104may comprise, or be implemented as, a digital signal processor (DSP),media access control (MAC) processor, or any other type ofcommunications processor in accordance with the described embodiments.

In various embodiments, the radio processor 104 may perform analogand/or digital baseband operations for the mobile computing device 100.For example, the radio processor 104 may perform digital-to-analogconversion (DAC), analog-to-digital conversion (ADC), modulation,demodulation, encoding, decoding, encryption, decryption, and so forth.

The mobile computing device 100 may comprise a memory 122 coupled to theradio processor 104. The memory 122 may be implemented using one or moretypes of machine-readable or computer-readable media capable of storingdata such as volatile memory or non-volatile memory, removable ornon-removable memory, erasable or non-erasable memory, writeable orre-writeable memory, and so forth. The memory 122 may comprise, forexample, flash memory and secure digital (SD) RAM. Although the memory122 may be shown as being separate from and external to the radioprocessor 104 for purposes of illustration, it is worthy to note that invarious embodiments some portion or the entire memory 122 may beincluded on the same integrated circuit as the radio processor 104.

The mobile computing device 100 may comprise a transceiver module 124coupled to the radio processor 104. The transceiver module 124 maycomprise one or more transceivers arranged to communicate usingdifferent types of protocols, communication ranges, operating powerrequirements, RF sub-bands, information types (e.g., voice or data), usescenarios, applications, and so forth. In various embodiments, thetransceiver module 124 may comprise one or more transceivers arranged tosupport voice communication for a cellular radiotelephone system such asa GSM, UMTS, and/or CDMA system. The transceiver module 124 also maycomprise one or more transceivers arranged to perform datacommunications in accordance with one or more wireless communicationsprotocols such as WWAN protocols (e.g., GSM/GPRS protocols, CDMA/1xRTTprotocols, EDGE protocols, EV-DO protocols, EV-DV protocols, HSDPAprotocols, etc.), WLAN protocols (e.g., IEEE 802.11a/b/g/n, IEEE 802.16,IEEE 802.20, etc.), PAN protocols, Infrared protocols, Bluetoothprotocols, EMI protocols including passive or active RFID protocols, andso forth. In some embodiments, the transceiver module 124 may comprise aGlobal Positioning System (GPS) transceiver to support positiondetermination and/or location-based services.

The transceiver module 124 generally may be implemented using one ormore chips as desired for a given implementation. Although thetransceiver module 124 may be shown as being separate from and externalto the radio processor 104 for purposes of illustration, it is worthy tonote that in various embodiments some portion or the entire transceivermodule 124 may be included on the same integrated circuit as the radioprocessor 104. The embodiments are not limited in this context.

The mobile computing device 100 may comprise an antenna system 126 fortransmitting and/or receiving electrical signals. As shown, the antennasystem 126 may be coupled to the radio processor 104 through thetransceiver module 124. The antenna system 126 may comprise or beimplemented as one or more internal antennas and/or external antennas.

The mobile computing device 100 may comprise a subscriber identitymodule (SIM) 128 coupled to the radio processor 104. The SIM 128 maycomprise, for example, a removable or non-removable smart card arrangedto encrypt voice and data transmissions and to store user-specific datafor allowing a voice or data communications network to identify andauthenticate the user. The SIM 128 also may store data such as personalsettings specific to the user.

As mentioned above, the host processor 102 may be arranged to provideprocessing or computing resources to the mobile computing device 100.For example, the host processor 102 may be responsible for executingvarious software programs such as system programs and applicationprograms to provide computing and processing operations for the mobilecomputing device 100.

System programs generally may assist in the running of the mobilecomputing device 100 and may be directly responsible for controlling,integrating, and managing the individual hardware components of thecomputer system. Examples of system programs may include, withoutlimitation, an operating system (OS), device drivers, programming tools,utility programs, software libraries, application programming interfaces(APIs), and so forth. The mobile computing device 100 may utilize anysuitable OS in accordance with the described embodiments such as a PalmOS®, Palm OS® Cobalt, Microsoft® Windows OS, Microsoft Windows® CE,Microsoft Pocket PC, Microsoft Mobile, Symbian OS™, Embedix OS, Linux,Binary Run-time Environment for Wireless (BREW) OS, JavaOS, a WirelessApplication Protocol (WAP) OS, and so forth.

Application programs generally may allow a user to accomplish one ormore specific tasks. Examples of application programs may include,without limitation, one or more messaging applications (e.g., telephone,voicemail, facsimile, e-mail, IM, SMS, MMS, video conferencing), a webbrowser application, personal information management (PIM) applications(e.g., contacts, calendar, scheduling, tasks), word processingapplications, spreadsheet applications, database applications, mediaapplications (e.g., video player, audio player, multimedia player,digital camera, video camera, media management), gaming applications,and so forth. In various implementations, the application programs mayprovide one or more graphical user interfaces (GUIs) to communicateinformation between the mobile computing device 100 and a user. In someembodiments, application programs may comprise upper layer programsrunning on top of the OS of the host processor 102 that operate inconjunction with the functions and protocols of lower layers including,for example, a transport layer such as a Transmission Control Protocol(TCP) layer, a network layer such as an Internet Protocol (IP) layer,and a link layer such as a Point-to-Point (PPP) layer used to translateand format data for communication.

In various embodiments, the mobile computing device 100 may comprise orimplement one or more applications arranged to receive directionalcommands as input. As shown in FIG. 1, for example, the mobile computingdevice 100 may comprise a gaming application 130 arranged to receivedirectional commands as input when a user is playing a game. It is to beunderstood that the embodiments are not limited in this regard, and thatthe mobile computing device 100 may include any type of applicationarranged to receive direction commands as input which is consistent withthe described embodiments.

The gaming application 130 may be implemented using any suitableprogramming language and may allow a user to play a single-player game,a multi-player game, an interactive game, a two-dimensional (2D) game, athree-dimensional (3D) game, and so forth. The gaming application 130may be arranged to display a gaming user interface (UI) 132 on thedisplay 112 when a user is playing a game. The gaming UI 132 maycomprise a game object 134 (e.g., racing car) configured to move inmultiple directions in response to directional commands input by theuser. For example, the game object 134 may be configured to move leftrelative to the gaming UI 132 in response to receiving a left command asinput and to move right relative to the gaming UI 132 in response toreceiving a right command as input. The embodiments are not limited inthis context.

As shown, the mobile computing device 100 also may comprise and/orimplement one or more other applications 136 in addition to the gamingapplication 130. In general, the other applications 136 may comprise anytype of client application that operates using the standard functions ofthe keypad 114. The other applications 136 may comprise, for example,one or more communications applications (e.g., telephone, voicemail,e-mail, IM, SMS, MMS), a web browser application, personal managementapplications (e.g., PIM, contacts, calendar, scheduling, tasks), wordprocessing applications, spreadsheet applications, databaseapplications, media applications (e.g., video player, audio player,multimedia player, digital camera, video camera, media management),location based services (LBS) applications, and so forth.

In general, the keypad 114 may be arranged to receive user input for thegaming application 130 and the other applications 136. In variousembodiments, the keypad 114 may be arranged to operate in multiple modesincluding a standard mode and a directional mode such as a gaming mode,for example. In some implementations, the mobile computing device 100may provide keypad settings that allow the user to control thefunctionality of the keypad 114 and change between modes. In some cases,the user may be presented with a keypad setting UI supported by the OSof the mobile computing device 100 and/or the gaming application 130,for example. The keypad setting UI may be configured to allow the userto change modes and/or to program certain keypad functions for eachmode.

In some embodiments, when the keypad 114 is operating in the standardmode, the user may input a preset or programmed keystroke or keystrokecombination to switch (or override) the keypad 114 into the directionalmode. Such keystrokes may include, for example, double pressing acertain key or button and/or pressing and holding a certain key orbutton. Similarly, when operating in the directional mode, the keypad114 may be switched to the standard mode in response to the userinputting a keystroke or keystroke combination. In some cases, themobile computing device 100 may comprise a dedicated key, button, orswitch configured to switch the operation of the keypad 114 between thestandard mode and the directional mode. The embodiments are not limitedin this context.

In general, the standard mode of the keypad 114 may support all of thepreset and programmable commands and functions typically provided by thekeypad 114 for normal operation of the mobile computing device 100. Inthe standard mode, keystrokes and keystroke combinations input to thekeypad 114 may be interpreted as whatever preset and/or programmablecontent, commands, and functions are normally associated with such keystrokes and keystroke combinations. Accordingly, the keypad 114 may beused in the standard mode to provide input to the gaming application 130as well as the other applications 132.

In the standard mode, for example, pressing a letter key (e.g., [A] key)is interpreted as the corresponding lower case letter (e.g., “a”).Pressing a keystroke combination such as the [Shift] key or [Option] keyfollowed by a letter key (e.g., [A] key) is interpreted as thecorresponding capital letter (e.g., “A” if after the [Shift] key) or thecorresponding symbol (e.g., “&” if after the [Option] key). Pressing afunction button (e.g., phone/send button) will initiate thecorresponding function (e.g., call dialed number), and pressing anavigation button will result in a corresponding directional commandbeing sent to an application, for example.

By contrast, the directional mode may support limited functionality ofthe keypad 114 by associating certain directional commands (e.g., leftand right commands) with many of the keys and/or buttons of the keypad114. Accordingly, in the directional mode, most keystrokes and keystrokecombinations input by the user will be interpreted as a particulardirectional command (e.g., left command or right command). While thefunctions of the keypad 114 may be substantially limited to generatingdirectional commands, using the keypad 114 in the directional mode maybe preferable to a user when running applications which respondprimarily to directional commands, such as gaming application 130.

In some embodiments, the keypad 114 may support a native directionalmode at the system level. It can be appreciated, however, that theembodiments are not limited in the regard and that the directional modeand keystroke interpretation may be supported at the application level.In some embodiments, for example, the directional mode may be activatedprogrammatically by an application (e.g., gaming application 130) andmay not require any key activation. In such embodiments, theinterpretation of keystrokes and keystroke combinations may occur at theapplication level with any left keystroke or keystroke combinationinterpreted by the application as a left directional command and anyright keystroke or keystroke combination interpreted by the applicationas a right directional command.

In the directional mode, the keypad 114 may comprise or implementmultiple keypad regions each associated with a different directionalcommand. In various embodiments, each keypad region may comprise severalkeys of the keypad 114 and may be associated with a particulardirectional command. Each key within a particular keypad region may beassociated with the identical directional command. Accordingly, a usermay press any key within a particular keypad region to generate theidentical directional command.

In various embodiments, the keypad regions and associated directionalcommands may be programmable. For example, a keypad setting UI may bepresented which allows the user to assign directional commands tocertain keys and/or buttons for the directional mode. In some cases, thekeypad setting UI may allow the user to select from among multiplepredefined keypad region layouts.

In some implementations, keys of the keypad 114 which do not form partof any keypad region may function identically in both the directionalmode and in the standard mode. For example, the navigation button mayretain standard functionality in the directional mode and can be used togenerate directional commands in addition to keys of the keypad regions.In some cases, keys of the keypad 114 which do not form part of anykeypad region may be assigned or associated with functions consistentwith the application employing the directional mode. For example, whenrunning the gaming application 130 in the directional mode, certain keyswhich do not form part of any keypad region (e.g., space bar) may beassigned or associated with certain game actions (e.g., fire, jump,etc.).

In some embodiments, multiple alphanumeric numeric keys which arelocated on the left half of the keypad 114 may comprise a left keypadregion, and each of the alphanumeric keys within the left keypad regionmay be associated with a left command. In addition, multiplealphanumeric numeric keys which are located on the right half of thekeypad 114 may comprise a right keypad region, and each of thealphanumeric keys within the right keypad region may be associated witha right command. In such embodiments, pressing any alphanumeric key inthe left keypad region of the keypad 114 will be interpreted as a leftcommand when in the directional mode. Likewise, pressing anyalphanumeric key in the right keypad region of the keypad 114 will beinterpreted as a right command when in the directional mode.

In one embodiment, for example, the keypad 114 may comprise or implementa left keypad region comprising most of the keys located on the lefthalf of the keypad 114 and a right keypad region comprising most of thekeys located in the right half of the keypad 114. In such embodiment,the left keypad region may comprise the [W] key, [E] key, [R] key, [S]key, [D] key, [F] key, [Z] key, [X] key, and [C] key. Pressing any keyin the left keypad region of the keypad 114 will be interpreted as aleft command when in the directional mode. The right keypad region maycomprise the [U] key, [I] key, [O] key, [J] key, [K] key, [L] key, [N]key, [M] key, and [.] key. Pressing any key in the right keypad regionof the keypad 114 will be interpreted as a right command when in thedirectional mode. It can be appreciate that in some embodiments, thekeys of the left keypad region are capable of being pressed by the leftthumb of a user, and the keys of the right keypad region are capable ofbeing pressed by the right thumb of the user.

It is to be understood that the embodiments are not limited tocomprising only a left keypad region and a right keypad region. Forexample, in some embodiments, additional directional commands and keypadregions may be implemented and/or each keypad region may comprise agreater or lesser number of keys depending on the particularimplementation.

As shown in FIG. 1, the mobile computing device 100 may comprise orimplement a standard character map 138. The standard character map 138may comprise a lookup table stored in memory 110, for example, thatdefines the content, commands, and functions which correspond to eachkeystroke or combination of keystrokes when the keypad 114 is operatingin the standard mode. The mobile computing device 100 also may compriseor implement a directional character map 140 (e.g., gaming charactermap). The directional character map 140 may comprise a lookup tablestored in memory 110, for example, that defines the content, commands,and functions which correspond to each keystroke or combination ofkeystrokes when the keypad 114 is operating in the directional mode. Invarious implementations, the directional character map 140 may be usedinstead of the standard character map 138 when a user is playing a game.

The mobile computing device 100 may comprise a keypad controller 142.The keypad controller 142 may comprise, for example, hardware and/orsoftware such as keypad control logic (e.g., instructions, data, and/orcode) to be executed by a logic device (e.g., host processor 102). Thekeypad control logic may be stored internally or externally to the logicdevice on one or more types of computer-readable storage media.

In various implementations, the keypad controller 142 may be arranged toreference either the standard character map 138 and/or the directionalcharacter map 140 in order to translate each keystroke or combination ofkeystrokes input by the user into the corresponding content, command, orfunction. For example, the keypad controller 142 may reference thestandard character map 138 when the keypad 114 is operating in thestandard mode and may reference the directional character map 140 whenthe keypad 114 is operating in the directional mode.

In the standard mode, for example, the keypad controller 142 may bearranged to compare a keystroke or keystroke combination to the standardcharacter map 138 and to generate keypad data representing thecorresponding content, command, or function. The keypad controller 142may forward the keypad data to the appropriate application. It can beappreciated that in the standard mode, appropriate applications includethe gaming application 130 as well as the other applications 136. Insome cases, the keypad data may be passed through the OS of the mobilecomputing device 100 to check whether the keyboard data represents asystem level command. Upon receiving the keypad data from the keypadcontroller 142, the application may determine whether the keypad datarepresents content, a command, or a function, and then may actaccordingly to display content, execute a command, or perform afunction. The application may be arranged to ignore keypad datarepresenting content, commands, or functions which are inconsistent withthe application.

In the directional mode, for example, the keypad controller 142 may bearranged to compare a keystroke or keystroke combination to thedirectional character map 140 and to generate keypad data representingthe corresponding content, command, or function. In most cases, thekeypad data generated by the keypad controller 142 may represent adirectional command (e.g., left command or right command). In general,by referencing the directional character map 140, the keypad controller142 may interpret most keystrokes or keystroke combinations as aparticular directional command.

The keypad controller 142 may forward the keypad data representing thedirectional command to an application (e.g., gaming application 130)arranged to receive directional commands as input. For example, uponreceiving the keypad data from the keypad controller 142, the gamingapplication 130 may determine that the keypad data represents adirectional command, such as a left command, and then may actaccordingly, such as by executing a left command to move the game object134 to the left relative to the gaming UI 132. While not always thecase, it can be appreciated that in some implementations the otherapplications 136 may be prevented from using directional mode.

As shown, the mobile computing device 100 may comprise a matrix key 144.In various embodiments, the key pad controller 142 may be arranged toreceive keystrokes and keystroke combinations from the matrix key 144.The matrix key 144 may comprise, for example, hardware and/or softwaresuch as keystroke determination logic (e.g., instructions, data, and/orcode) to be executed by a logic device (e.g., host processor 102). Thekeystroke determination logic may be stored internally or externally tothe logic device on one or more types of computer-readable storagemedia.

The matrix key 144 may be arranged to determine keystrokes and keystrokecombinations based on electrical signals received from the keypad 114.In various embodiments, the matrix key 144 may interpret a flow ofelectrical current and/or a change in the flow of electrical current asa keystroke or keystroke combination. For example, the matrix key 144may be arranged to detect a change in current flow and interpret suchchange as a particular keystroke.

The keypad 114 may comprise a grid or matrix of circuits and switchesresponsive to user input keystrokes. The keypad 114 may employ a varietyof switch technologies including mechanical (e.g. metal contact, carboncontact, membrane, etc.) and non-mechanical (e.g., capacitive) switches.When a key is pressed on the keypad 114, for example, the pressure mayclose a switch to complete a circuit and allow the flow of currentand/or cause a change in current flow. The matrix key 144 may bearranged to interpret such current flow or change in current flow as oneor more keystrokes, which may be provided to the keypad controller 142.

In various embodiments, when the keypad 114 is operating in thedirectional mode, the matrix key 144 may be arranged to recognize thepressing and holding of a particular key as a repeated keystroke and torecognize the double pressing of a particular key as two separatekeystrokes. The matrix key 144 also may be arranged to recognize thesimultaneous pressing or substantially simultaneous (e.g., within acertain delay parameter) pressing of multiple keys within a particularkeypad region as a single keystroke so that a single press to a keypadregion results in the generation of a single directional command.

FIG. 2 illustrates a keypad 200 in accordance with one or moreembodiments which may be implemented by the mobile computing device 100of FIG. 1. As shown, the keypad 200 may comprise alphanumeric keyshaving a QWERTY key layout and an integrated number dial pad. Although aQWERTY key layout is shown for purposes of illustration, it can beappreciated that the keypad 200 may comprise any other suitable keylayout such as a Dvorak key layout (e.g., vowels on the left side andcommon consonants on the right side), an ABCDE key layout, an XPeRT keylayout, a QWERTZ key layout, an AZERTY key layout, and so forth. Thekeypad 200 may comprise various configurations of typing keys, numerickeys, alphanumeric keys, symbol keys, function keys, and control keysdepending on the manufacturer, the OS, and/or applications.

In this embodiment, the keypad 200 comprises various buttons such as anavigation button 202, a left action button 204 (e.g., [Home] button), aright action button 206 (e.g., [Menu] button), a phone/send button 208,a power/end button 210, a calendar button 212, and a messaging button214. As shown, the keypad 200 also comprises various alphanumeric andcontrol keys including an [A] key 216, and [Option] key 218, and a[Shift] key 220.

In various embodiments, the keypad 200 may be arranged to operate inmultiple modes including a standard mode and a directional mode such asa gaming mode, for example. The standard mode of the keypad 200 maysupport all of the preset and programmable commands and functionstypically provided for normal operation. In the standard mode,keystrokes and keystroke combinations input to the keypad 200 areinterpreted as whatever preset and/or programmable content, commands,and functions are normally associated with such key strokes andkeystroke combinations. In the standard mode, for example, pressing the[A] key 216 is interpreted as “a”; pressing the [Shift] key 220 then the[A] key 216 is interpreted as “A”; pressing the [Option] key 218 thenthe [A] key 216 is interpreted as “&”.

The directional mode may support limited functionality of the keypad 200by associating certain directional commands (e.g., left and rightcommands) with many of the keys and/or buttons of the keypad 200.Accordingly, in the directional mode, most keystrokes and keystrokecombinations input by the user will be interpreted as a particulardirectional command (e.g., left command or right command). While thefunctions of the keypad 200 may be substantially limited to generatingdirectional commands, using the keypad 200 in the directional mode maybe preferable to a user when running applications which respondprimarily to directional commands.

In the directional mode, the keypad 200 may comprise or implementmultiple keypad regions each associated with a different directionalcommand. As shown, the keypad 200 may comprise or implement a leftkeypad region 222 comprising multiple keys located on the left half ofthe keypad 200 and a right keypad region 224 comprising multiple keyslocated in the right half of the keypad 200. Each of the keys within theleft keypad region 222 may be associated with a left command. Each ofthe keys within the right keypad region 224 may be associated with aright command. In such embodiments, pressing any key in the left keypadregion 222 of the keypad 200 will be interpreted as a left command whenin the directional mode. Likewise, pressing any key in the right keypadregion 224 of the keypad 200 will be interpreted as a right command whenin the directional mode. It can be appreciate that in some embodiments,the keys of the left keypad region 222 are capable of being pressed bythe left thumb of a user, and the keys of the right keypad region 224are capable of being pressed by the right thumb of the user.

It is to be understood that the embodiments are not limited tocomprising only the left keypad region 222 and the right keypad 224. Forexample, in some embodiments, additional directional commands and keypadregions may be implemented and/or each keypad region may comprise agreater or lesser number of keys depending on the particularimplementation.

In some embodiments, a “joystick” mode of mapping the keypad 200 may besupported in which keypad regions closer to the periphery of the keypad200 exhibit more functionality, and keypad regions closer to the centerof the keypad 200 exhibit less or neutral functionality. In oneembodiment, for example, when running a driving game, the keys of thefar left two columns (e.g. [Q] key, [A] key, [Option] key, [W] key, [S]key, and [Z] key) may be interpreted as a “hard left” directionalcommand. The keys of the inner left two columns (e.g., [E] key, [D] key,[X] key, [R] key, [F] key, and [C] key) may be interpreted as a “mildleft” directional command. The keys of the two central columns (e.g.,[T] key, [G] key, [V] key, [Y] key, [H] key and [B] key) all may returnsteering to a center or straight position. The keys of the inner righttwo columns (e.g., [U] key, [J] key, [N] key, [I] key, [K] key, and [M]key) may be interpreted as a “mild right” directional command. The keysof the far right two columns (e.g., [O] key, [L] key, [.] key, [P] key,[Backspace] key, and [Enter] key) may be interpreted as a “hard right”directional command.

In an embodiment for a flying game, for example, the keys of the top rowmay be interpreted as a “down” directional command, and the keys of thebottom row may be interpreted as an “up” directional command. In such anembodiment, the [Q] key and [W] keys may be interpreted as a “hard leftand down” directional command while the [N] key and [M] key may beinterpreted as a “mild right and up” directional command.

In some implementations, keys of the keypad 200 which do not form partof either the left keypad region 222 or the right keypad region 224 mayfunction identically in both the directional mode and in the standardmode. For example, the navigation button 202 may retain standardfunctionality in the directional mode and can be used to generatedirectional commands in addition to keys of the left keypad region 222and the right keypad region 224. In some embodiments, the left actionbutton 204, right action button 206, phone/send button 208, power/endbutton 210, calendar button 212, and messaging button 214 may retainstandard functionality.

In some cases, keys of the keypad 200 which do not form part of eitherthe left keypad region 222 or the right keypad region 224 may beassigned or associated with functions consistent with the applicationemploying the directional mode. For example, one or more of the leftaction button 204, right action button 206, phone/send button 208,power/end button 210, calendar button 212, messaging button 214, andspace bar 226 may be assigned or associated with certain actionsperformed by the application employing the directional mode.

FIG. 3 illustrates a logic flow 300 in accordance with one or moreembodiments. The logic flow 300 may be performed by various systemsand/or devices and may be implemented as hardware, software, and/or anycombination thereof, as desired for a given set of design parameters orperformance constraints. For example, the logic flow 300 may beimplemented by a logic device (e.g., processor) and/or logic (e.g.,instructions, data, and/or code) to be executed by a logic device. Forpurposes of illustration, and not limitation, the logic flow 300 isdescribed with reference to FIG. 1. The embodiments are not limited inthis context.

The logic flow 300 may comprise determining user input keystrokes andkeystroke combinations to a keypad region of a keypad (block 302). Invarious embodiments, the keypad (e.g., keypad 114) may be arranged tooperate in multiple modes including a standard mode and a directionalmode such as a gaming mode, for example. The standard mode may supportall of the preset and programmable commands and functions typicallyprovided for normal operation. In the standard mode, input keystrokesand keystroke combinations are interpreted as whatever preset and/orprogrammable content, commands, and functions are normally associatedwith such key strokes and keystroke combinations.

The directional mode may associate certain directional commands (e.g.,left and right commands) with many of the keys and/or buttons of thekeypad so that most keystrokes and keystroke combinations input by theuser will be interpreted as a particular directional command (e.g., leftcommand or right command). The directional mode may be used when runningapplications which respond primarily to directional commands (e.g.,gaming application 130).

For example, in the directional mode, the keypad 114 may comprise orimplement multiple keypad regions each associated with a differentdirectional command. Each keypad region may comprise several keys of thekeypad 114 and may be associated with a particular directional command.Each key within a particular keypad region may be associated with theidentical directional command. Accordingly, a user may press any keywithin a particular keypad region to generate the identical directionalcommand. In various embodiments, the keypad regions and associateddirectional commands may be programmable. In some implementations, keysof the keypad 114 which do not form part of any keypad region mayfunction identically in both the directional mode and in the standardmode. In some cases, keys of the keypad 114 which do not form part ofany keypad region may be assigned or associated with functionsconsistent with the application employing the directional mode.

In one embodiment, for example, the keypad 114 may comprise or implementa left keypad region comprising most of the keys located on the lefthalf of the keypad 114 and a right keypad region comprising most of thekeys located in the right half of the keypad 114. Pressing any key inthe left keypad region of the keypad 114 will be interpreted as a leftcommand when in the directional mode. Pressing any key in the rightkeypad region of the keypad 114 will be interpreted as a right commandwhen in the directional mode. The keys of the left keypad region may bearranged to be pressed by the left thumb of a user, and the keys of theright keypad region may be arranged to be pressed by the right thumb ofthe user.

It is to be understood that the embodiments are not limited tocomprising only a left keypad region and a right keypad region. In someembodiments, for example, a “joystick” mode of mapping the keypad 114may be supported in which keypad regions closer to the periphery of thekeypad 114 exhibit more functionality, and keypad regions closer to thecenter of the keypad 114 exhibit less or neutral functionality.

The logic flow 300 may comprise interpreting the keystrokes andkeystroke combinations to the keypad region as a directional command(block 304). In the directional mode, for example, the keypad controller142 may be arranged to compare a keystroke or keystroke combination tothe directional character map 140. The directional character map 140 maycomprise a lookup table that defines the content, commands, andfunctions which correspond to each keystroke or combination ofkeystrokes when the keypad 114 is operating in the directional mode. Invarious implementations, the directional character map 140 may be usedinstead of the standard character map 138 when a user is playing a game.In general, by referencing the directional character map 140, the keypadcontroller 142 may interpret most keystrokes or keystroke combinationsas a particular directional command.

The logic flow 300 may comprise generating keypad data representing thedirectional command (block 306). In the directional mode, for example,the keypad controller 142 may be arranged to generate keypad datarepresenting a directional command (e.g., left command or rightcommand).

The logic flow 300 may comprise forwarding the keypad data to anapplication arranged to receive directional commands as input (block308). In various embodiments, the keypad controller 142 may forward thekeypad data representing the directional command to an application(e.g., gaming application 130) arranged to receive directional commandsas input. Upon receiving the keypad data from the keypad controller 142,the gaming application 130 may determine that the keypad data representsa directional command, such as a left command, and then may actaccordingly, such as by executing a left command to move the game object134 to the left relative to the gaming UI 132. While not always thecase, it can be appreciated that in some implementations the otherapplications 136 may be prevented from using directional mode.

Numerous specific details have been set forth to provide a thoroughunderstanding of the embodiments. It will be understood, however, thatthe embodiments may be practiced without these specific details. Inother instances, well-known operations, components and circuits have notbeen described in detail so as not to obscure the embodiments. It can beappreciated that the specific structural and functional details arerepresentative and do not necessarily limit the scope of theembodiments.

Various embodiments may comprise one or more elements. An element maycomprise any structure arranged to perform certain operations. Eachelement may be implemented as hardware, software, or any combinationthereof, as desired for a given set of design and/or performanceconstraints. Although an embodiment may be described with a limitednumber of elements in a certain topology by way of example, theembodiment may include more or less elements in alternate topologies asdesired for a given implementation.

It is worthy to note that any reference to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment. The appearances of the phrase “in oneembodiment” in the specification are not necessarily all referring tothe same embodiment.

Although some embodiments may be illustrated and described as comprisingexemplary functional components or modules performing variousoperations, it can be appreciated that such components or modules may beimplemented by one or more hardware components, software components,and/or combination thereof. The functional components and/or modules maybe implemented, for example, by logic (e.g., instructions, data, and/orcode) to be executed by a logic device (e.g., processor). Such logic maybe stored internally or externally to a logic device on one or moretypes of computer-readable storage media.

It also is to be appreciated that the described embodiments illustrateexemplary implementations, and that the functional components and/ormodules may be implemented in various other ways which are consistentwith the described embodiments. Furthermore, the operations performed bysuch components or modules may be combined and/or separated for a givenimplementation and may be performed by a greater number or fewer numberof components or modules.

Unless specifically stated otherwise, it may be appreciated that termssuch as “processing,” “computing,” “calculating,” “determining,” or thelike, refer to the action and/or processes of a computer or computingsystem, or similar electronic computing device, that manipulates and/ortransforms data represented as physical quantities (e.g., electronic)within registers and/or memories into other data similarly representedas physical quantities within the memories, registers or other suchinformation storage, transmission or display devices.

It is worthy to note that some embodiments may be described using theexpression “coupled” and “connected” along with their derivatives. Theseterms are not intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other. Withrespect to software elements, for example, the term “coupled” may referto interfaces, message interfaces, API, exchanging messages, and soforth.

Some of the figures may include a flow diagram. Although such figuresmay include a particular logic flow, it can be appreciated that thelogic flow merely provides an exemplary implementation of the generalfunctionality. Further, the logic flow does not necessarily have to beexecuted in the order presented unless otherwise indicated. In addition,the logic flow may be implemented by a hardware element, a softwareelement executed by a processor, or any combination thereof.

While certain features of the embodiments have been illustrated asdescribed above, many modifications, substitutions, changes andequivalents will now occur to those skilled in the art. It is thereforeto be understood that the appended claims are intended to cover all suchmodifications and changes as fall within the true spirit of theembodiments.

1. An apparatus comprising: a mobile computing device keypad comprisingmultiple keypad regions, each keypad region comprising multiple adjacentkeys; and a keypad controller operative to receive input from a matrixkey, and recognize the substantially simultaneous pressing of multiplekeys within a particular keypad region as a single keystroke; whereineach keypad region is associated with a single command, and eachindividual key within a keypad region is associated with that samecommand; and wherein said single keystroke is operative to generate asingle command as if only one key in said region had been pressed. 2.The apparatus of claim 1, wherein certain keypad functions areprogrammable.
 3. The apparatus of claim 1, wherein the keypad regionsare programmable.
 4. The apparatus of claim 1, wherein the matrix keydetermines user input keystrokes and keystroke combinations.
 5. Theapparatus of claim 1, further comprising an application to receivecommands as input.
 6. The apparatus of claim 1, the keypad to operate inmultiple modes.
 7. The apparatus of claim 1, wherein said command is asingle directional command associated with each of said multiple pressedkeys.
 8. A method comprising: determining user input keystrokes andkeystroke combinations to a keypad region of a keypad, the keypadcomprising multiple keypad regions, each keypad region comprisingmultiple adjacent keys; and recognizing the substantially simultaneouspressing of multiple keys within a particular keypad region as a singlekeystroke; wherein each keypad region is associated with a singlecommand, and each individual key within a keypad region is associatedwith that same command; and wherein said single keystroke is operativeto generate a single command as if only one key in said region had beenpressed.
 9. The method of claim 8, wherein certain keypad functions areprogrammable.
 10. The method of claim 8, wherein the keypad regions areprogrammable.
 11. The method of claim 8, further comprising determininguser input keystrokes and keystroke combinations.
 12. The method ofclaim 8, further comprising forwarding the keypad data to an applicationas input.
 13. The method of claim 8, wherein the keypad operates inmultiple modes.
 14. The method of claim 8, wherein said command is asingle directional command associated with each of said multiple pressedkeys.
 15. A non-transitory computer-readable storage medium comprisinginstructions that if executed enable a computing system to: determineuser input keystrokes and keystroke combinations to a keypad region of akeypad, the keypad comprising multiple keypad regions, each keypadregion comprising multiple adjacent keys; and recognize thesubstantially simultaneous pressing of multiple keys within a particularkeypad region as a single keystroke; wherein each keypad region isassociated with a single command, and each individual key within akeypad region is associated with that same command; and wherein saidsingle keystroke is operative to generate a single command as if onlyone key in said region had been pressed.
 16. The storage medium of claim15, wherein certain keypad functions are programmable.
 17. The storagemedium of claim 15, wherein the keypad regions are programmable.
 18. Thestorage medium of claim 15, further comprising instructions that ifexecuted enable a computing system to determine user input keystrokesand keystroke combinations.
 19. The storage medium of claim 15, furthercomprising instructions that if executed enable a computing system toforward the keypad data to an application as input.
 20. The storagemedium of claim 15, wherein the keypad operates in multiple modes.